.TH std::unordered_multimap::insert_range 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::unordered_multimap::insert_range \- std::unordered_multimap::insert_range

.SH Synopsis
   template< container-compatible-range<value_type> R >  (since C++23)
   void insert_range( R&& rg );

   Inserts a copy of each element in the range rg.

   Each iterator in the range rg is dereferenced exactly once. The behavior is
   undefined if rg overlaps with the container.

   If after the operation the new number of elements is greater than old
   max_load_factor() * bucket_count() a rehashing takes place.
   If rehashing occurs (due to the insertion), all iterators are invalidated. Otherwise
   (no rehashing), iterators are not invalidated.

.SH Parameters

   rg     -     a container compatible range, that is, an input_range whose elements
                are convertible to T
.SH Type requirements
   -
   value_type must be EmplaceConstructible into unordered_multimap from
   *ranges::begin(rg). Otherwise, the behavior is undefined.

.SH Return value

   \fI(none)\fP

.SH Complexity

   Average case O(N), where N is ranges::distance(rg), worst case O(N·(a.size() + 1)).

.SH Notes

       Feature-test macro       Value    Std                   Feature
   __cpp_lib_containers_ranges 202202L (C++23) Ranges-aware construction and insertion

.SH Example


// Run this code

 #include <iostream>
 #include <unordered_map>
 #include <utility>

 void println(auto, auto const& container)
 {
     for (const auto& [key, value] : container)
         std::cout << '{' << key << ',' << value << '}' << ' ';
     std::cout << '\\n';
 }

 int main()
 {
     auto container = std::unordered_multimap{std::pair{1, 11}, {3, 33}, {2, 22}, {4, 44}};
     const auto rg = {std::pair{-1, -11}, {3, -33}, {-2, -22}};
 #ifdef __cpp_lib_containers_ranges
     container.insert_range(rg);
 #else
     container.insert(rg.begin(), rg.end());
 #endif
     println("{}", container);
 }

.SH Possible output:

 {1,11} {-2,-22} {3,-33} {3,33} {2,22} {-1,-11} {4,44}

.SH See also

          inserts elements
   insert or nodes
          \fI(since C++17)\fP
          \fI(public member function)\fP
